package com.example.feign.fallback;

import com.example.bean.Product;
import com.example.feign.ProductService;
import com.example.shoputils.resp.Result;
import org.springframework.stereotype.Component;

/**
 * @Author 刘武贵
 * @Date 2024-03-03 19:09
 * @Description 功能描述：商品微服务的容错类
 */
@Component
public class ProductServiceFallBack implements ProductService {
    /**
     * 获取指定产品ID的产品信息。
     *
     * @param pid 产品ID，类型为Long。
     * @return 返回一个Product对象，如果找不到对应产品，则返回一个ID为-1的Product对象。
     */
    @Override
    public Product getProduct(Long pid) {
        // 创建一个新的产品对象
        Product product = new Product();
        // 设置产品的ID为-1，表示未找到具体产品
        product.setId(-1L);
        // 返回创建的产品对象
        return product;
    }

    /**
     * 更新计数方法。
     *
     * @param pid 长整型，表示某个实体的ID。
     * @param count 整型，表示需要更新的计数值。
     * @return Result<Integer> 返回一个结果对象，其中包含操作结果的状态码和状态信息。
     */
    @Override
    public Result<Integer> updateCount(Long pid, Integer count) {
        Result<Integer> result = new Result<>();
        // 设置结果状态码和状态信息，表示触发了容错逻辑
        result.setCode(1001);
        result.setCodeMsg("触发了容错逻辑");
        return result;
    }
}